#include "mock_turtle.h"
#include <gmock/gmock.h>
#include <gtest/gtest.h>

using ::testing::AtLeast;

// Painter is write by myself, just for this test.
class Painter
{
public:
	Painter( Turtle *turtle ) : m_turtle( turtle ) {};
	bool DrawCircle( int, int , int )
	{
		m_turtle->PenDown();
		return true;
	}

private:
	Turtle *m_turtle;
};

TEST(PainterTest, CanDrawSomething)
{
	MockTurtle turtle;
	EXPECT_CALL(turtle, PenDown())
		.Times(AtLeast(1));

	Painter painter(&turtle);

	EXPECT_TRUE(painter.DrawCircle(0, 0, 10));
}

int main(int argc, char** argv)
{
	// The following line must be executed to initialize Google Mock
	// (and Google Test) before running the tests.
	::testing::InitGoogleMock(&argc, argv);
	return RUN_ALL_TESTS();
}
